本文将详细介绍如何通过Docker容器化方式部署SGLANG,包括环境准备、镜像拉取、容器配置、功能验证及生产环境优化等关键步骤,帮助用户快速搭建稳定可靠的SGLANG服务。 环境准备Docker环境安装部署SGLANG前需确保Docker环境已正确安装。 安装完成后,可通过以下命令验证Docker是否正常运行:#验证Docker服务状态systemctlstatusdocker#验证Docker功能docker--versiondockerrun--rmhello-world #运行测试容器,成功输出则环境正常镜像准备镜像信息确认SGLANG官方Docker镜像信息如下:镜像名称:lmsysorg/sglang推荐标签:latest(稳定版)标签列表:可通过官方标签页面查看所有可用版本镜像拉取命令根据镜像命名规则 /总结本文详细介绍了SGLANG的Docker容器化部署方案,包括环境准备、镜像拉取、容器配置、功能测试及生产环境优化等全流程内容,为SGLANG的快速部署和稳定运行提供了可操作的指导。
该项目的核心价值在于其实践性与系统性:不仅提供了如何配置开发环境、使用 Docker、管理依赖等实操指南,还深入剖析了 slime、verl、OpenRLHF 等主流开源框架的架构设计与核心实现,帮助读者理解大规模机器学习训练与推理背后的系统设计思想 实用的环境配置与工具指南:提供了基于 Docker 的可复现环境配置方法、高效的 bash/zsh 配置、uv 包管理工具的使用,以及如何在复杂集群上配置开发环境。 但项目内包含了大量环境配置的实践指导:基础环境:推荐使用 Docker 来创建隔离且可复现的开发环境。 可以参考项目中的 Docker 配置指南(如使用 lmsysorg/sglang:latest 或 nvcr.io/nvidia/pytorch 等基础镜像)。 核心概念:理解 SGLang 中的请求处理流程SGLang 作为高性能推理引擎,其核心是高效处理并发的推理请求。一个请求的生命周期大致如下(简化):# 伪代码,示意 SGLang 内部流程# 1.
3,Jump-Forward Decoding 结合基于FSM解码和插值解码的优势,SGLang提出了跳跃解码。 3.1,如何压缩FSM节点 在 SGLang 中,压缩有限状态机(Compressed Finite State Machine)实现核心是通过合并连续的单一转换边来简化状态机结构,从而提升解码效率。 举例: 以常见的 LLM 分词器为例,结合 SGLang 中压缩有限状态机的场景,说明如何通过原始分词器进行重新分词: 假设压缩有限状态机中有一条压缩边包含的文本为{"summary": "AI is, 使用原始分词器重新分词的过程如下: 输入整合:将历史生成的文本,假设为{"title": "SGLang"}与当前压缩边文本{"summary": "AI is整合,得到完整上下文字符串:{"title ": "SGLang"}{"summary": "AI is。
是一个运行大模型的工具,可以看成是大模型领域的 Docker,可以下载所需的大模型并暴露 Ollama API,极大的简化了大模型的部署。 SGLang通过 Deployment 部署 SGLang:apiVersion: apps/v1kind: Deploymentmetadata: name: sglang labels: app: webui spec: containers: - name: webui image: imroc/open-webui:main # docker app: webui spec: containers: - name: webui image: imroc/open-webui:main # docker app: webui spec: containers: - name: webui image: imroc/open-webui:main # docker
SGLang使用程序化的语言模型技术,并利用基数树和压缩有限状态机很好的解决了KV缓存复用和结构化输出问题,本文主要围绕KV缓存复用讨论以下问题: 1)语言模型程序的定义和特点 2)结合持续批处理,如何使用基数树复用 如何存储和管理并不是一蹴而就的,vllm实现了基础的共享前缀树的方案,SGLang提出使用基数树同时实现四种对话方式的KV缓存共享方案。 而基数树的实时查询确保每次重组 batch 时,优先选择能复用最多连续缓存的请求; • 避免缓存碎片化:通过基数树的路径管理,KV 缓存始终以连续前缀块的形式被复用,减少碎片化缓存导致的内存浪费; 总结: SGLang
采访嘉宾|尹良升,SGLang 核心开发者 编辑|罗燕珊 作为开源社区近年来备受瞩目的推理引擎,SGLang 自发布以来持续迭代优化。 在 DeepSeek R1 发布时,SGLang 便成为其官方推荐的推理引擎之一。 他是 SGLang 最早期的几位核心开发者之一,深度参与了 SGLang 的研发和优化。 尹良升: 我认为 SGLang 最核心的优势在于高性能的实现和易于二次开发的代码。 InfoQ:结合你的体验,能否分享下你认为 SGLang 社区是如何推动技术演进和应用场景落地之间的良性循环? 尹良升:SGLang 的核心是开源,让人人都能参与开发和贡献。
安装 sglang 首先我们使用 conda 建立虚拟环境并激活。 conda create -n llm python=3.10 conda activate llm 2.1 安装 sglang SGLang 是一个用于大型语言模型和视觉语言模型的快速服务框架。 3 运行 SGLang python -m sglang.launch_server --model-path qwen/Qwen2-72B-Instruct-GPTQ-Int8 --port 30000 接下来,我们看看 sglang 的一些参数设置。 --tp 表示张量并行,目前是 4 卡我们设置为 4. 测试指令如下: python3 -m sglang.bench_serving --backend sglang --port 8413 --dataset-name random --num-prompts
client.audio.transcriptions.create( model="GLM-ASR-Nano-2512", file=audio_file ) print(transcript.text) 使用 SGLang 部署服务 SGLang 支持高吞吐量批处理,适合生产环境: # 拉取开发版docker镜像 docker pull lmsysorg/sglang:dev # 进入容器后运行 pip install git+https://github.com/huggingface/transformers python3 -m sglang.launch_server --model-path zai-org //github.com/zai-org/GLM-ASR ⚠️ 注意:如果你在2025年12月27日之前下载过模型,需要重新拉取最新版本,因为模型权重格式已更新以兼容 transformers 和 SGLang 优点: 粤语等方言识别能力强 低音量语音处理效果好 开源免费,可本地部署和微调 支持 transformers 5.x、vLLM、SGLang 等主流推理框架 局限: 语言覆盖不如 Whisper
部署方式:通常通过 Docker 容器进行部署,Hugging Face 提供了官方的 TGI Docker 镜像。 其架构设计兼顾了性能(通过连续批处理、PagedAttention、FlashAttention 等)和生产环境的易用性(如 Docker化部署、监控集成)。 Docker 容器简了安装方式,TGI, vLLM, TensorRT-LLM (通过 NGC 容器), LMDeploy 等均提供或推荐使用 Docker 部署。配置:不同框架的配置复杂度各异。 容器化 (Docker) 与编排 (Kubernetes, KServe):Docker:已成为打包 LLM 推理服务器及其依赖的标准方式,确保了环境的可移植性和一致性 14。 Docker 化部署是推荐的最佳实践。重视生态系统与社区支持:活跃的开源社区(如 vLLM, SGLang)意味着更快的迭代、更及时的 Bug 修复和更丰富的学习资源。
这一问题的答案,隐藏在推理引擎 SGLang 的代码仓库中。 但是,SGLang 的征程绝不止步于此。 本文将从核心技术突破、系统级优化到开发者生态,解码 SGLang 独到的进化之路。 三、多模态支持:视觉与语言的协同加速 在多模态应用场景中,SGLang 持续与国内外顶尖的多模态技术团队深度合作,将先进的视觉与语言处理能力无缝集成到 SGLang 中。 GitHub 仓库: https://github.com/sgl-project/sglang Slack 社区:slack.sglang.ai DeepSeek 优化指南: https://docs.sglang.ai
部署量化大模型 # Python 离线安装库,依赖,依赖,还是 TM 的依赖 # Qwen3-Next,性价比最高的非思考大模型 get 0、Xinference 大模型推理引擎,最火的当属 vLLM 和 SGLang 它们之间也在不断在某些知名模型上的优化你追我赶,我个人是 vLLM 的忠实用户,但是最近在部署某个 Reranker 模型时下游对接出现了一些问题,用 xinference(一个性能强大且功能全面的分布式推理框架,它直接支持了 vllm、sglang (Xinference 版本需要至少 v1.8.1) 我直接使用 latest,如果你的开发机与生产机架构不一样,docker pull 的时候记得加 --platform 参数,比如docker pull docker load i xinfer.tar # 运行 docker images 命令来查看本地镜像列表,确认xinfer已经成功加载。 docker images 4、启动xinference 执行命令如下: docker run -e XINFERENCE_MODEL_SRC=local -p 9002:9997 --gpus all
vLLM ✔ ✔ ✔ ✔ SGLang 兼顾效率与精度的低精度推理:通过NVFP4量化实现,并已获得SGLang、TensorRT-LLM和vLLM的支持。 可开箱即用TensorRT-LLM的预配置Docker容器。vLLM:英伟达与vLLM项目合作,扩展了对推测解码内核集成、英伟达Blackwell架构、分离式推理以及扩展并行性的支持。 SGLang:英伟达亦与SGLang合作,实现了支持分离式推理与推测解码的Mistral Large 3。可立即尝试在英伟达云GPU上部署使用SGLang的方案。图2.
3. 2010-2020年:Docker与K8s引领的无状态成熟时代 2010年后,互联网业务进入精细化运营阶段,多环境部署不一致、服务扩容效率低、资源利用率不足等新矛盾凸显,Docker的出现打破了这一僵局 Docker通过容器化技术将应用及其依赖环境打包为统一镜像,实现“构建一次,处处运行”的特性,Dockerfile则标准化了镜像构建流程,从根本上解决了环境一致性问题。 topoB的核心创新点在于通过GD2FS分布式集群实现了SGLang实例间的KV缓存共享,使多轮会话过程中KV缓存命中率达到100%。 需要注意的是,本次测试过程中,为实现SGLang实例与GD2FS分布式集群的适配,我们对sglang进行了相应改造。 目前,这部分改造代码已在向sglang社区贡献中,测试所用数据集及相关工具也已同步提交至对应PR,具体可查看:https://github.com/sgl-project/sglang/pull/14994
此次v0.9.3版本,推出了InternVL3、Qwen3、Gemma3、Llama4等多款重量级多模态模型,同时引入了音视频推理支持、官方GPU docker镜像、全新推理引擎以及多种优化功能。 官方GPU Docker镜像发布 为简化开发者环境部署,v0.9.3推出了官方GPU Docker镜像,集成了最优配置的软件栈和依赖,大幅降低环境配置难度。 SGLang推理引擎集成 引入了全新的SGLang推理支持,进一步丰富了模型的推理框架选择。此功能支持更灵活的推理策略和参数调优,满足不同场景下的性能需求,提升推理效率。 4. GPU Docker镜像简化环境搭建,适合想快速启动的开发者。 2. 配置多模态推理依托vLLM与SGLang,可结合音视频数据开展批量推理,充分利用新增算力与资源。 5. 云端部署配合S3/GCS支持,在云端搭建训练集群,实现机器学习流水线的标准化和自动化。
data = retry_with_stronger_hints(prompt)SGLang(图1b)则将生成过程显式结构化为可执行程序:# SGLang: Structured & Deterministic 1.2 SGLang 的语言设计原则SGLang 并非通用编程语言,而是领域特定语言(DSL),专为 LLM 生成控制而设计。 二、SGLang 运行时架构:约束编译器 + 分层执行引擎SGLang 的卓越表现力源于其三层架构(图2):[User Program] ↓ (Parse + Semantic Analysis 三、SGLang 的高级编程抽象:构建 LLM 原语SGLang 不止于基础约束,更提供高层抽象,将常见 LLM 任务封装为可组合原语。 在 COCO 数据集上,SGLang 使结构化图像描述的字段准确率提升 31.5%,且无格式错误。四、编译优化:静态分析与约束融合SGLang 编译器不仅是语法转换器,更执行深度优化,提升运行时效率。
如下图 1 、图 2 表明,与现有系统(即 Guidance 和 vLLM)相比,SGLang 的吞吐量提高了 5 倍。 前端:使用 SGLang 轻松进行 LLM 编程 在前端,该研究提出了 SGLang,一种嵌入在 Python 中的特定于领域的语言,允许表达高级 prompt 技术、控制流、多模态、解码约束和外部交互 SGLang 函数可以通过各种后端运行,例如 OpenAI、Anthropic、Gemini 和本地模型。 图 5. 用 SGLang 实现多维文章评分。 图 5 显示了一个具体示例。 (5) run 使用其参数执行 SGLang 函数。 给定这样一个 SGLang 程序,我们可以通过解释器执行它,也可以将其跟踪为数据流图并使用图执行器运行它。 SGLang 的语法很大程度上受到 Guidance 的启发,并引入了新的原语,还处理程序内并行性和批处理。所有这些新功能都有助于 SGLang 的出色性能。
SGLang 的开源实现:性能接近官方数据 LMSYS Org 宣布,SGLang 成功实现了 DeepSeek V3/R1 模型的高效服务,其核心在于利用预填充-解码分离和专家并行技术,在 96 个 这一数据几乎与 DeepSeek 官方博客报告的吞吐量相当,显示出 SGLang 优化的强大潜力。 绿色柱(DeepSeek, Profiled)表示 SGLang 的优化结果,明显优于其他策略。 预填充-解码分离与专家并行:技术核心解析 SGLang 的成功离不开两大关键技术:预填充-解码分离和专家并行。 SGLang 的解决方案是将预填充和解码阶段分离到不同的 GPU 组,并为每个阶段定制并行策略。
为了实现这种量化模型的高效推理,我们在SGLang中实现了一种优化的推理方案,并贡献给了开源社区。 TP并行和EP并行的权重划分对比示意图 SGLang中最初针对W4AFP8模型的推理方案是EP并行。 SGLang中W4AFP8量化模块架构图,深色为TP并行需要修改的部分 为此,腾讯云联合小红书Hilab Infra团队,为SGLang提供了完整的 W4AFP8模型TP并行推理实现。 目前相关PR已正式合入 SGLang V0.5.2版本,并吸引更多开发者在此基础上做了进一步优化和拓展。 (详见 https://github.com/sgl-project/sglang/pull/8118) 在SGLang V0.5.2之后的版本用TP并行部署 W4AFP8模型很简单,只需要如下命令:
部署推理支持 SGLang 和 vLLM,前者 SGLang 官方已支持,vLLM 尚未合并分支,用起来稍麻烦# Install the latest SGlang from main branch python3 -m uv pip install "sglang[all] @ git+https://github.com/sgl-project/sglang.git/@main#egg=sglang&subdirectory =python" # Launch SGLang Server SGLANG_USE_MODELSCOPE=true python3 -m sglang.launch_server --model-path
比如下面的sglang推理引擎的代码,参考:2sglang 代码三、解决显存碎片问题,大幅提升吞吐—Paged Attention在 Linux 等操作系统上运行的应用程序通常不会出现内存碎片问题,这是因为 下面为SGLang给出的Radix Attention性能对比效果,与当前系统相比,SGLang吞吐提升了5倍以上。 图片来自5 Fast and Expressive LLM Inference with RadixAttention and SGLang如果你也想尝试下Radix Attention,可以直接使用SGLang 图片来自6 vllm Documentation2.SGLang配置多卡推理以为命令为SGLang推理服务如何配置多卡推理。 https://lmsys.org/blog/2024-01-17-sglang/6 vllm Documentation https://docs.vllm.ai/en/latest/7 SGLang